SymPas: Symbolic Program Slicing
نویسندگان
چکیده
Program slicing is a technique for simplifying programs by focusing on selected aspects of their behavior. Current mainstream static methods operate dependence graph PDG (program graph) or SDG (system graph), but these friendly representations may be bit expensive some users. In this paper we attempt to study light-weight approach program slicing, called Symbolic Slicing (SymPas), which works as dataflow analysis LLVM (low-level virtual machine). our SymPas approach, slices are stored in symbolic forms, not procedures being re-analyzed (cf. procedure summaries). Instead re-analyzing multiple times find its each callling context, calculate single slice can instantiated at call sites avoiding re-analysis; implemented with perform intermediate representation (IR). For comparison, systematically adapt IFDS (interprocedural finite distributive subset) and the SDG-based method (SDG-IFDS) statically IR programs. Evaluated open-source benchmark programs, backward shows factor-of-6 reduction time cost factor-of-4 space cost, compared SDG-IFDS, thus more efficient. addition, result that after studying from 66 ranging up 336 800 instructions size, highly size-scalable.
منابع مشابه
Program Slicing
The concept of static program slicing was first introduced by Weiser. Ottenstein et al. indicated that an intraprocedural slice can be found in linear time by traversing a suitable graph representation of the program referred to as the program dependence graph (PDG). Horwitz et al. introduced algorithms to construct interprocedural slices by extending the program dependence graph to a supergrap...
متن کاملProgram Specialization via Program Slicing
This paper concerns the use of program slicing to perform a certain kind of program-specialization operation. We show that the specialization operation that slicing performs is different from the specialization operations performed by algorithms for partial evaluation, supercompilation, bifurcation, and deforestation. To study the relationship between slicing and these operations in a simplifie...
متن کاملDynamic program slicing methods
A dynamic program slice is this part of a program that "affects" the computation of a variable of interest during program execution on a specific program input. Dynamic program slicing refers to a collection of program slicing methods that are based on program execution and may significantly reduce the size of a program slice because run-time information, collected during program execution, is ...
متن کاملProgram Slicing by Calculation
Program slicing is a well known family of techniques used to identify code fragments which depend on or are depended upon specific program entities. They are particularly useful in the areas of reverse engineering, program understanding, testing and software maintenance. Most slicing methods, usually oriented towards the imperative or object paradigms, are based on some sort of graph structure ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Journal of Computer Science and Technology
سال: 2021
ISSN: ['1666-6046', '1666-6038']
DOI: https://doi.org/10.1007/s11390-020-9754-4